import { IReqCartList } from '@/types/cart'
import request from '@/utils/request'

/**
 * @description 添加到购物车
 * @param skuId 商品ID
 * @param skuNum 商品数量
 */
export const reqAddcart = (skuId: number, skuNum: string) => {
  return request(`/api/cart/addToCart/${skuId}/${skuNum}`, 'POST')
}

/**
 * @description 获取购物车列表
 * @returns Promise
 * @returns Promise
 */
export const reqCartList = () => {
  return request<IReqCartList[]>('/api/cart/cartList', 'GET')
}

/**
 * @description 切换商品选中状态
 * @param skuID 商品ID
 * @param isChecked 商品选中状态  0 代表取消选中   1 代表选中
 * @returns Promise
 */
export const reqCartstatus = (skuID: number, isChecked: number) => {
  return request(`/api/cart/checkCart/${skuID}/${isChecked}`, 'GET')
}

/**
 * @description 购物车商品全选
 * @param isChecked 商品选中状态  0 代表取消选中   1 代表选中
 * @param skuIdList 代表修改的商品id (skuId)列表
 * @returns Promise
 */
export const reqCartAllSelect = (isChecked: number, skuIdList: []) => {
  return request(`/api/cart/batchCheckCart/${isChecked}`, 'POST', skuIdList)
}

/**
 * @description 删除购物车单个商品
 * @param skuId 商品id
 * @returns Promise
 */
export const reqDelCart = (skuId: number) => {
  return request(`/api/cart/deleteCart/${skuId}`, 'DELETE')
}

/**
 * @description 批量删除购物车单个商品
 * @param skuIdList 要删除的商品 id 列表
 * @returns Promise
 */
export const reqBatchDeleteCart = (skuIdList: []) => {
  return request('/api/cart/batchDeleteCart', 'POST', skuIdList)
}
